import request from '@/config/axios'

// 账号信息 VO
export interface AccountVO {
  id: number // 主键
  username: string // 学号
  password: string // 密码
  phone: string // 手机号
  nickname: string // 昵称
  avatar: string // 头像地址
  accountType: number // 账号类型 1=科大 2=联培 3=招生 4=课题
  activated: boolean // 激活状态
  remark: string // 备注
  status: number // 帐号状态（0正常 1停用）
  loginIp: string // 最后登录IP
  loginDate: Date // 最后登录时间
}

export interface AccountSelectVO {
  id: number // 主键
  username: string // 登录账号
  phone: string // 手机号
  nickname: string // 昵称
  avatar?: string // 头像地址
  accountType: number // 账号类型 1=科大 2=联培 3=招生 4=课题
  activated: boolean // 是否已激活
  status: number // 帐号状态（0正常 1停用）
  studentName?: string // 学籍姓名
  studentCode?: string // 学籍学号
  classroom?: string // 学籍班级
  email?: string // 电子邮箱
}

export interface SystemMessageReqVO {
  message: string // 消息内容
  method: string[] // 发送方式
  accounts: AccountSelectVO[] // 接收账号
}

// 账号信息 API
export const AccountApi = {
  // 查询账号信息分页
  getAccountPage: async (params: any) => {
    return await request.get({ url: `/system/account/page`, params })
  },

  // 查询账号信息详情
  getAccount: async (id: number) => {
    return await request.get({ url: `/system/account/get?id=` + id })
  },

  // 新增账号信息
  createAccount: async (data: AccountVO) => {
    return await request.post({ url: `/system/account/create`, data })
  },

  // 修改账号信息
  updateAccount: async (data: AccountVO) => {
    return await request.put({ url: `/system/account/update`, data })
  },

  // 删除账号信息
  deleteAccount: async (id: number) => {
    return await request.delete({ url: `/system/account/delete?id=` + id })
  },

  // 导出账号信息 Excel
  exportAccount: async (params) => {
    return await request.download({ url: `/system/account/export-excel`, params })
  },

  // 查询账号信息分页
  getAccountSelectPage: async (params: any) => {
    return await request.get({ url: `/system/account/select-page`, params })
  },

  // 异步发送系统消息
  sendSystemMessage: async (data: SystemMessageReqVO) => {
    return await request.post({ url: `/system/account/send-system-message`, data })
  }
}
